#!/usr/bin/env python

# -------------------------------
# projects/python/collatz/main.py
# Copyright (C) 2009
# Glenn P. Downing
# -------------------------------

# To run the program
#     main.py < Primes.in > Primes.out

# To document the program
#     pydoc -w main

# -------
# globals
# -------

i = 0 # input: don't change after reading
j = 0 # output first prime
v = 0 # output second
m = 0 # output third
z = 0 # output fourth
# metacache of all primes below the square root of 10,000,000
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71,73, 79, 83, 89, 97, 101, 103, 107, 109,
113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 
251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 
397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 
557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 
701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 
863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, 
1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 
1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 
1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 
1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571,
1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1699, 1709, 
1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, 
1873, 1877,  1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, 1999, 2003, 2011, 
2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, 2137, 2141, 2143, 
2153, 2161, 2179, 2203,  2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297, 2309, 
2311, 2333, 2339, 2341, 2347,  2351, 2357, 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441, 
2447, 2459, 2467, 2473, 2477, 2503,  2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, 
2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, 
2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801,  2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 
2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969,  2971, 2999, 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 
3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137]

# -----------
# InputReader
# -----------

class InputReader (object) :
    def read (self) :
        return raw_input()

# ------------
# OutputWriter
# ------------

class OutputWriter (object) :
    def write (self, *a) :
        for w in a :
            print w,
        print

# -------
# my_read
# -------

def my_read (r) :
    """
    reads an int into i
    return true if that succeeds, false otherwise
    """
    global i
    try :
        s = r.read()
    except EOFError :
        return False
    i = int(s)
    return True

#----------
# my_helper
#----------

def my_helper () :
    """
    checks the prime table (till sqrt of 10,000,000) for the next two numbers
    if they are not there, gets the first number of the table and substracts it from the
    given i (even number from my_eval()) checks the resulting number for primality by trial division
    with all the members of the prime table.
    """

    global i, m, z
    m = 0

    # initial check for 2 prime numbers from the table (very fast lookup)
    for x in primes :
        if i - x in primes :        # if (number - prime from table) is a prime from the table
            m = x
            z = i - x
    
    """ 
    if it is not from the table, check if i - x is divisible by any of the primes in the table, 
    if so it is not a prime and move on to the next x value from the prime table
    otherwise it is a prime (by theorem) and thus z is found
    """
    
    prime = 0                       # 0 if prime, 1 if not prime
    
    if m == 0 :                          # if it didn't find two primes in the table (slower than lookup)
        for x in primes :             # prime number from the table
            for k  in primes :         # goes through all numbers in the table, divides the 
                if ((i - x) % k) == 0 :         # if it is divisible by 1 of the primes from the table it is not a prime number
                    prime = 0                           # sets the prime flag to false(0)
                    break                                   # breaks immediately    
            if prime :
                m = x                    # assigns the found prime numbers
                z = i - x
                break               # ends search for the numbers (found)
            else :
                prime  = 1           # resets the prime checker value and try's with the next x value from the table

# -------
# my_eval
# -------

def my_eval () :
    """
    finds four prime numbers, whose sum is equal to i
    if the input number is smaller than 8 sets j=-1 (flag for impossible output)
    if the i. number is odd takes the first two numbers as 2 and 3
    if it is even takes the first two numbers as 2 and 2
    """
    global i, j, v
    
    if i < 8 :
        j = -1
    elif i % 2 == 1 :
        j = 2
        v = 3
        i = i - 5
    else :
        j = 2
        v = 2
        i = i - 4
    
    if j == 2 :
     my_helper()
     
     
# --------
# my_print
# --------

def my_print (w) :
    """
    writes the values of the four found primes j, v, m, z
    """
    if j < 0 :
        w.write("Impossible")
    else :
        w.write(j, v, m, z)

# ----
# main
# ----

def main () :
    """
    runs the program
    """
    while my_read(InputReader()) :
        my_eval()
        my_print(OutputWriter())

if __name__ == "__main__" :
    main()
